package com.softer.wxzj.mapper;

import com.softer.wxzj.entity.ResourceTree;
import com.softer.wxzj.entity.SysLoginInfo;
import com.softer.wxzj.entity.SysResource;
import com.softer.wxzj.mapper.base.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * HomeMapper class
 *
 * @author zcz
 * @date 2019/1/16
 */
@Repository
public interface HomeMapper extends BaseMapper<SysResource> {
    /**
     * 获取系统用户菜单
     *
     * @param userName
     * @return
     */
    List<SysResource> getSysOperMenu(String userName);

    /**
     * 获取企业用户菜单
     *
     * @param userName
     * @return
     */
    List<SysResource> getCorpOperMenu(String userName);

    List<ResourceTree> getResourceTree(String userName);

    /**
     * 获取企业
     *
     * @param zoneCode
     * @return
     */
    List<Map<String, String>> getBaseOrganization(@Param("zoneCode") String zoneCode, @Param("flag") String flag, @Param("configIds") String configIds);

    /**
     * 获取业委会
     *
     * @param zoneCode
     * @return
     */
    List<Map<String, String>> getBaseOwnerCommittee(@Param("zoneCode") String zoneCode, @Param("flag") String flag, @Param("configIds") String configIds);

    /**
     * 获取资金使用的待办事项
     *
     * @param zoneCode 区域代码
     * @param flag     标记 区分是否总计或分组汇总
     * @return
     */
    List<Map<String, String>> getExpProjectCount(@Param("zoneCode") String zoneCode, @Param("flag") String flag, @Param("configIds") String configIds);

    /**
     * 获取资金金额的待办事项
     *
     * @param zoneCode 区域代码
     * @param flag     标记 区分是否总计或分组汇总
     * @return
     */
    List<Map<String, String>> getExpProjectPayCount(@Param("zoneCode") String zoneCode, @Param("flag") String flag, @Param("configIds") String configIds);

    /**
     * 获取资金退款过户待办事项
     *
     * @param zoneCode
     * @param flag
     * @return
     */
    List<Map<String, String>> getRefReqCount(@Param("zoneCode") String zoneCode, @Param("flag") String flag, @Param("configIds") String configIds);

    /**
     * 小区建档 主页数据展示 类型，条数
     *
     * @param zoneCode 區域代碼
     * @param flag     區分綜合和分開
     * @return
     */
    List<Map<String, String>> queryTheCommunityFile(@Param("zoneCode") String zoneCode, @Param("flag") String flag, @Param("configIds") String configIds);

    /**
     * 资金交存 主页数据展示 类型，条数
     *
     * @param zoneCode
     * @param flag
     * @return
     */
    List<Map<String, String>> depositAndMaintenance(@Param("zoneCode") String zoneCode, @Param("flag") String flag, @Param("configIds") String configIds);
    List<Map<String, String>>  depositAndDepMaintenance (@Param("zoneCode") String zoneCode, @Param("flag") String flag, @Param("configIds") String configIds);
    List<Map<String, String>>  depositAndConMaintenance (@Param("zoneCode") String zoneCode, @Param("flag") String flag, @Param("configIds") String configIds);

    String getConfigIdByOperNo(String userName);

    List<Map<String, String>> getTransReq(@Param("zoneCode") String zoneCode, @Param("flag") String flag, @Param("configIds") String configIds);

    List<Map<String, String>> getExpProjectDelCount(@Param("zoneCode") String zoneCode, @Param("flag") String flag, @Param("configIds") String configIdByOperNo);

    List<Map<String, String>> getExpProjectPayDelCount(@Param("zoneCode") String zoneCode, @Param("flag") String flag, @Param("configIds") String configIdByOperNo);

    /**
     * 获取上次登录记录
     *
     * @param userName 登录账号
     * @return 上次登录记录
     */
    List<SysLoginInfo> getLoginInfo(String userName);

    List<Map<String, String>> regionBinding(@Param("zoneCode") String zoneCode, @Param("flag") String flag, @Param("configIds") String configIdByOperNo);

}
